package hu.bme.mit.androtext.androapp.parser.antlr.internal; 

import org.eclipse.xtext.*;
import org.eclipse.xtext.parser.*;
import org.eclipse.xtext.parser.impl.*;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser;
import org.eclipse.xtext.parser.antlr.XtextTokenStream;
import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken;
import hu.bme.mit.androtext.androapp.services.AndroAppDslGrammarAccess;



import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;

@SuppressWarnings("all")
public class InternalAndroAppDslParser extends AbstractInternalAntlrParser {
    public static final String[] tokenNames = new String[] {
        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_INT", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'application'", "'{'", "'datamodel'", "'}'", "'activity'", "'layout'", "'import'", "'.'", "'.*'"
    };
    public static final int RULE_ID=4;
    public static final int RULE_ANY_OTHER=10;
    public static final int EOF=-1;
    public static final int RULE_SL_COMMENT=8;
    public static final int RULE_ML_COMMENT=7;
    public static final int T__19=19;
    public static final int RULE_STRING=6;
    public static final int T__16=16;
    public static final int T__15=15;
    public static final int T__18=18;
    public static final int T__17=17;
    public static final int T__12=12;
    public static final int T__11=11;
    public static final int T__14=14;
    public static final int T__13=13;
    public static final int RULE_INT=5;
    public static final int RULE_WS=9;

    // delegates
    // delegators


        public InternalAndroAppDslParser(TokenStream input) {
            this(input, new RecognizerSharedState());
        }
        public InternalAndroAppDslParser(TokenStream input, RecognizerSharedState state) {
            super(input, state);
             
        }
        

    public String[] getTokenNames() { return InternalAndroAppDslParser.tokenNames; }
    public String getGrammarFileName() { return "../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g"; }



     	private AndroAppDslGrammarAccess grammarAccess;
     	
        public InternalAndroAppDslParser(TokenStream input, AndroAppDslGrammarAccess grammarAccess) {
            this(input);
            this.grammarAccess = grammarAccess;
            registerRules(grammarAccess.getGrammar());
        }
        
        @Override
        protected String getFirstRuleName() {
        	return "AndroidApplication";	
       	}
       	
       	@Override
       	protected AndroAppDslGrammarAccess getGrammarAccess() {
       		return grammarAccess;
       	}



    // $ANTLR start "entryRuleAndroidApplication"
    // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:67:1: entryRuleAndroidApplication returns [EObject current=null] : iv_ruleAndroidApplication= ruleAndroidApplication EOF ;
    public final EObject entryRuleAndroidApplication() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleAndroidApplication = null;


        try {
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:68:2: (iv_ruleAndroidApplication= ruleAndroidApplication EOF )
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:69:2: iv_ruleAndroidApplication= ruleAndroidApplication EOF
            {
             newCompositeNode(grammarAccess.getAndroidApplicationRule()); 
            pushFollow(FOLLOW_ruleAndroidApplication_in_entryRuleAndroidApplication75);
            iv_ruleAndroidApplication=ruleAndroidApplication();

            state._fsp--;

             current =iv_ruleAndroidApplication; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleAndroidApplication85); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleAndroidApplication"


    // $ANTLR start "ruleAndroidApplication"
    // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:76:1: ruleAndroidApplication returns [EObject current=null] : ( ( (lv_imports_0_0= ruleImport ) )* otherlv_1= 'application' ( (lv_name_2_0= RULE_ID ) ) otherlv_3= '{' otherlv_4= 'datamodel' ( ( ruleQualifiedName ) ) ( (lv_mainActivity_6_0= ruleActivity ) ) ( (lv_modelElements_7_0= ruleModelElement ) )* otherlv_8= '}' ) ;
    public final EObject ruleAndroidApplication() throws RecognitionException {
        EObject current = null;

        Token otherlv_1=null;
        Token lv_name_2_0=null;
        Token otherlv_3=null;
        Token otherlv_4=null;
        Token otherlv_8=null;
        EObject lv_imports_0_0 = null;

        EObject lv_mainActivity_6_0 = null;

        EObject lv_modelElements_7_0 = null;


         enterRule(); 
            
        try {
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:79:28: ( ( ( (lv_imports_0_0= ruleImport ) )* otherlv_1= 'application' ( (lv_name_2_0= RULE_ID ) ) otherlv_3= '{' otherlv_4= 'datamodel' ( ( ruleQualifiedName ) ) ( (lv_mainActivity_6_0= ruleActivity ) ) ( (lv_modelElements_7_0= ruleModelElement ) )* otherlv_8= '}' ) )
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:80:1: ( ( (lv_imports_0_0= ruleImport ) )* otherlv_1= 'application' ( (lv_name_2_0= RULE_ID ) ) otherlv_3= '{' otherlv_4= 'datamodel' ( ( ruleQualifiedName ) ) ( (lv_mainActivity_6_0= ruleActivity ) ) ( (lv_modelElements_7_0= ruleModelElement ) )* otherlv_8= '}' )
            {
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:80:1: ( ( (lv_imports_0_0= ruleImport ) )* otherlv_1= 'application' ( (lv_name_2_0= RULE_ID ) ) otherlv_3= '{' otherlv_4= 'datamodel' ( ( ruleQualifiedName ) ) ( (lv_mainActivity_6_0= ruleActivity ) ) ( (lv_modelElements_7_0= ruleModelElement ) )* otherlv_8= '}' )
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:80:2: ( (lv_imports_0_0= ruleImport ) )* otherlv_1= 'application' ( (lv_name_2_0= RULE_ID ) ) otherlv_3= '{' otherlv_4= 'datamodel' ( ( ruleQualifiedName ) ) ( (lv_mainActivity_6_0= ruleActivity ) ) ( (lv_modelElements_7_0= ruleModelElement ) )* otherlv_8= '}'
            {
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:80:2: ( (lv_imports_0_0= ruleImport ) )*
            loop1:
            do {
                int alt1=2;
                int LA1_0 = input.LA(1);

                if ( (LA1_0==17) ) {
                    alt1=1;
                }


                switch (alt1) {
            	case 1 :
            	    // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:81:1: (lv_imports_0_0= ruleImport )
            	    {
            	    // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:81:1: (lv_imports_0_0= ruleImport )
            	    // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:82:3: lv_imports_0_0= ruleImport
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getAndroidApplicationAccess().getImportsImportParserRuleCall_0_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleImport_in_ruleAndroidApplication131);
            	    lv_imports_0_0=ruleImport();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getAndroidApplicationRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"imports",
            	            		lv_imports_0_0, 
            	            		"Import");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop1;
                }
            } while (true);

            otherlv_1=(Token)match(input,11,FOLLOW_11_in_ruleAndroidApplication144); 

                	newLeafNode(otherlv_1, grammarAccess.getAndroidApplicationAccess().getApplicationKeyword_1());
                
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:102:1: ( (lv_name_2_0= RULE_ID ) )
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:103:1: (lv_name_2_0= RULE_ID )
            {
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:103:1: (lv_name_2_0= RULE_ID )
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:104:3: lv_name_2_0= RULE_ID
            {
            lv_name_2_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleAndroidApplication161); 

            			newLeafNode(lv_name_2_0, grammarAccess.getAndroidApplicationAccess().getNameIDTerminalRuleCall_2_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getAndroidApplicationRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"name",
                    		lv_name_2_0, 
                    		"ID");
            	    

            }


            }

            otherlv_3=(Token)match(input,12,FOLLOW_12_in_ruleAndroidApplication178); 

                	newLeafNode(otherlv_3, grammarAccess.getAndroidApplicationAccess().getLeftCurlyBracketKeyword_3());
                
            otherlv_4=(Token)match(input,13,FOLLOW_13_in_ruleAndroidApplication190); 

                	newLeafNode(otherlv_4, grammarAccess.getAndroidApplicationAccess().getDatamodelKeyword_4());
                
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:128:1: ( ( ruleQualifiedName ) )
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:129:1: ( ruleQualifiedName )
            {
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:129:1: ( ruleQualifiedName )
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:130:3: ruleQualifiedName
            {

            			if (current==null) {
            	            current = createModelElement(grammarAccess.getAndroidApplicationRule());
            	        }
                    
             
            	        newCompositeNode(grammarAccess.getAndroidApplicationAccess().getDatarootAndroDataModelRootCrossReference_5_0()); 
            	    
            pushFollow(FOLLOW_ruleQualifiedName_in_ruleAndroidApplication213);
            ruleQualifiedName();

            state._fsp--;

             
            	        afterParserOrEnumRuleCall();
            	    

            }


            }

            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:143:2: ( (lv_mainActivity_6_0= ruleActivity ) )
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:144:1: (lv_mainActivity_6_0= ruleActivity )
            {
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:144:1: (lv_mainActivity_6_0= ruleActivity )
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:145:3: lv_mainActivity_6_0= ruleActivity
            {
             
            	        newCompositeNode(grammarAccess.getAndroidApplicationAccess().getMainActivityActivityParserRuleCall_6_0()); 
            	    
            pushFollow(FOLLOW_ruleActivity_in_ruleAndroidApplication234);
            lv_mainActivity_6_0=ruleActivity();

            state._fsp--;


            	        if (current==null) {
            	            current = createModelElementForParent(grammarAccess.getAndroidApplicationRule());
            	        }
                   		set(
                   			current, 
                   			"mainActivity",
                    		lv_mainActivity_6_0, 
                    		"Activity");
            	        afterParserOrEnumRuleCall();
            	    

            }


            }

            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:161:2: ( (lv_modelElements_7_0= ruleModelElement ) )*
            loop2:
            do {
                int alt2=2;
                int LA2_0 = input.LA(1);

                if ( (LA2_0==15) ) {
                    alt2=1;
                }


                switch (alt2) {
            	case 1 :
            	    // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:162:1: (lv_modelElements_7_0= ruleModelElement )
            	    {
            	    // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:162:1: (lv_modelElements_7_0= ruleModelElement )
            	    // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:163:3: lv_modelElements_7_0= ruleModelElement
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getAndroidApplicationAccess().getModelElementsModelElementParserRuleCall_7_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleModelElement_in_ruleAndroidApplication255);
            	    lv_modelElements_7_0=ruleModelElement();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getAndroidApplicationRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"modelElements",
            	            		lv_modelElements_7_0, 
            	            		"ModelElement");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop2;
                }
            } while (true);

            otherlv_8=(Token)match(input,14,FOLLOW_14_in_ruleAndroidApplication268); 

                	newLeafNode(otherlv_8, grammarAccess.getAndroidApplicationAccess().getRightCurlyBracketKeyword_8());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleAndroidApplication"


    // $ANTLR start "entryRuleModelElement"
    // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:191:1: entryRuleModelElement returns [EObject current=null] : iv_ruleModelElement= ruleModelElement EOF ;
    public final EObject entryRuleModelElement() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleModelElement = null;


        try {
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:192:2: (iv_ruleModelElement= ruleModelElement EOF )
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:193:2: iv_ruleModelElement= ruleModelElement EOF
            {
             newCompositeNode(grammarAccess.getModelElementRule()); 
            pushFollow(FOLLOW_ruleModelElement_in_entryRuleModelElement304);
            iv_ruleModelElement=ruleModelElement();

            state._fsp--;

             current =iv_ruleModelElement; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleModelElement314); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleModelElement"


    // $ANTLR start "ruleModelElement"
    // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:200:1: ruleModelElement returns [EObject current=null] : this_Activity_0= ruleActivity ;
    public final EObject ruleModelElement() throws RecognitionException {
        EObject current = null;

        EObject this_Activity_0 = null;


         enterRule(); 
            
        try {
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:203:28: (this_Activity_0= ruleActivity )
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:205:5: this_Activity_0= ruleActivity
            {
             
                    newCompositeNode(grammarAccess.getModelElementAccess().getActivityParserRuleCall()); 
                
            pushFollow(FOLLOW_ruleActivity_in_ruleModelElement360);
            this_Activity_0=ruleActivity();

            state._fsp--;

             
                    current = this_Activity_0; 
                    afterParserOrEnumRuleCall();
                

            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleModelElement"


    // $ANTLR start "entryRuleActivity"
    // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:221:1: entryRuleActivity returns [EObject current=null] : iv_ruleActivity= ruleActivity EOF ;
    public final EObject entryRuleActivity() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleActivity = null;


        try {
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:222:2: (iv_ruleActivity= ruleActivity EOF )
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:223:2: iv_ruleActivity= ruleActivity EOF
            {
             newCompositeNode(grammarAccess.getActivityRule()); 
            pushFollow(FOLLOW_ruleActivity_in_entryRuleActivity394);
            iv_ruleActivity=ruleActivity();

            state._fsp--;

             current =iv_ruleActivity; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleActivity404); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleActivity"


    // $ANTLR start "ruleActivity"
    // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:230:1: ruleActivity returns [EObject current=null] : (otherlv_0= 'activity' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'layout' ( ( ruleQualifiedName ) ) ) ;
    public final EObject ruleActivity() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_name_1_0=null;
        Token otherlv_2=null;

         enterRule(); 
            
        try {
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:233:28: ( (otherlv_0= 'activity' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'layout' ( ( ruleQualifiedName ) ) ) )
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:234:1: (otherlv_0= 'activity' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'layout' ( ( ruleQualifiedName ) ) )
            {
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:234:1: (otherlv_0= 'activity' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'layout' ( ( ruleQualifiedName ) ) )
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:234:3: otherlv_0= 'activity' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'layout' ( ( ruleQualifiedName ) )
            {
            otherlv_0=(Token)match(input,15,FOLLOW_15_in_ruleActivity441); 

                	newLeafNode(otherlv_0, grammarAccess.getActivityAccess().getActivityKeyword_0());
                
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:238:1: ( (lv_name_1_0= RULE_ID ) )
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:239:1: (lv_name_1_0= RULE_ID )
            {
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:239:1: (lv_name_1_0= RULE_ID )
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:240:3: lv_name_1_0= RULE_ID
            {
            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleActivity458); 

            			newLeafNode(lv_name_1_0, grammarAccess.getActivityAccess().getNameIDTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getActivityRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"name",
                    		lv_name_1_0, 
                    		"ID");
            	    

            }


            }

            otherlv_2=(Token)match(input,16,FOLLOW_16_in_ruleActivity475); 

                	newLeafNode(otherlv_2, grammarAccess.getActivityAccess().getLayoutKeyword_2());
                
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:260:1: ( ( ruleQualifiedName ) )
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:261:1: ( ruleQualifiedName )
            {
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:261:1: ( ruleQualifiedName )
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:262:3: ruleQualifiedName
            {

            			if (current==null) {
            	            current = createModelElement(grammarAccess.getActivityRule());
            	        }
                    
             
            	        newCompositeNode(grammarAccess.getActivityAccess().getLayoutLayoutCrossReference_3_0()); 
            	    
            pushFollow(FOLLOW_ruleQualifiedName_in_ruleActivity498);
            ruleQualifiedName();

            state._fsp--;

             
            	        afterParserOrEnumRuleCall();
            	    

            }


            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleActivity"


    // $ANTLR start "entryRuleImport"
    // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:283:1: entryRuleImport returns [EObject current=null] : iv_ruleImport= ruleImport EOF ;
    public final EObject entryRuleImport() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleImport = null;


        try {
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:284:2: (iv_ruleImport= ruleImport EOF )
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:285:2: iv_ruleImport= ruleImport EOF
            {
             newCompositeNode(grammarAccess.getImportRule()); 
            pushFollow(FOLLOW_ruleImport_in_entryRuleImport534);
            iv_ruleImport=ruleImport();

            state._fsp--;

             current =iv_ruleImport; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleImport544); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleImport"


    // $ANTLR start "ruleImport"
    // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:292:1: ruleImport returns [EObject current=null] : (otherlv_0= 'import' ( (lv_importedNamespace_1_0= ruleQualifiedNameWithWildCard ) ) ) ;
    public final EObject ruleImport() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        AntlrDatatypeRuleToken lv_importedNamespace_1_0 = null;


         enterRule(); 
            
        try {
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:295:28: ( (otherlv_0= 'import' ( (lv_importedNamespace_1_0= ruleQualifiedNameWithWildCard ) ) ) )
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:296:1: (otherlv_0= 'import' ( (lv_importedNamespace_1_0= ruleQualifiedNameWithWildCard ) ) )
            {
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:296:1: (otherlv_0= 'import' ( (lv_importedNamespace_1_0= ruleQualifiedNameWithWildCard ) ) )
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:296:3: otherlv_0= 'import' ( (lv_importedNamespace_1_0= ruleQualifiedNameWithWildCard ) )
            {
            otherlv_0=(Token)match(input,17,FOLLOW_17_in_ruleImport581); 

                	newLeafNode(otherlv_0, grammarAccess.getImportAccess().getImportKeyword_0());
                
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:300:1: ( (lv_importedNamespace_1_0= ruleQualifiedNameWithWildCard ) )
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:301:1: (lv_importedNamespace_1_0= ruleQualifiedNameWithWildCard )
            {
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:301:1: (lv_importedNamespace_1_0= ruleQualifiedNameWithWildCard )
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:302:3: lv_importedNamespace_1_0= ruleQualifiedNameWithWildCard
            {
             
            	        newCompositeNode(grammarAccess.getImportAccess().getImportedNamespaceQualifiedNameWithWildCardParserRuleCall_1_0()); 
            	    
            pushFollow(FOLLOW_ruleQualifiedNameWithWildCard_in_ruleImport602);
            lv_importedNamespace_1_0=ruleQualifiedNameWithWildCard();

            state._fsp--;


            	        if (current==null) {
            	            current = createModelElementForParent(grammarAccess.getImportRule());
            	        }
                   		set(
                   			current, 
                   			"importedNamespace",
                    		lv_importedNamespace_1_0, 
                    		"QualifiedNameWithWildCard");
            	        afterParserOrEnumRuleCall();
            	    

            }


            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleImport"


    // $ANTLR start "entryRuleQualifiedName"
    // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:326:1: entryRuleQualifiedName returns [String current=null] : iv_ruleQualifiedName= ruleQualifiedName EOF ;
    public final String entryRuleQualifiedName() throws RecognitionException {
        String current = null;

        AntlrDatatypeRuleToken iv_ruleQualifiedName = null;


        try {
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:327:2: (iv_ruleQualifiedName= ruleQualifiedName EOF )
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:328:2: iv_ruleQualifiedName= ruleQualifiedName EOF
            {
             newCompositeNode(grammarAccess.getQualifiedNameRule()); 
            pushFollow(FOLLOW_ruleQualifiedName_in_entryRuleQualifiedName639);
            iv_ruleQualifiedName=ruleQualifiedName();

            state._fsp--;

             current =iv_ruleQualifiedName.getText(); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleQualifiedName650); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleQualifiedName"


    // $ANTLR start "ruleQualifiedName"
    // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:335:1: ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )* ) ;
    public final AntlrDatatypeRuleToken ruleQualifiedName() throws RecognitionException {
        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();

        Token this_ID_0=null;
        Token kw=null;
        Token this_ID_2=null;

         enterRule(); 
            
        try {
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:338:28: ( (this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )* ) )
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:339:1: (this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )* )
            {
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:339:1: (this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )* )
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:339:6: this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )*
            {
            this_ID_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleQualifiedName690); 

            		current.merge(this_ID_0);
                
             
                newLeafNode(this_ID_0, grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_0()); 
                
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:346:1: (kw= '.' this_ID_2= RULE_ID )*
            loop3:
            do {
                int alt3=2;
                int LA3_0 = input.LA(1);

                if ( (LA3_0==18) ) {
                    alt3=1;
                }


                switch (alt3) {
            	case 1 :
            	    // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:347:2: kw= '.' this_ID_2= RULE_ID
            	    {
            	    kw=(Token)match(input,18,FOLLOW_18_in_ruleQualifiedName709); 

            	            current.merge(kw);
            	            newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0()); 
            	        
            	    this_ID_2=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleQualifiedName724); 

            	    		current.merge(this_ID_2);
            	        
            	     
            	        newLeafNode(this_ID_2, grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_1_1()); 
            	        

            	    }
            	    break;

            	default :
            	    break loop3;
                }
            } while (true);


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleQualifiedName"


    // $ANTLR start "entryRuleQualifiedNameWithWildCard"
    // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:367:1: entryRuleQualifiedNameWithWildCard returns [String current=null] : iv_ruleQualifiedNameWithWildCard= ruleQualifiedNameWithWildCard EOF ;
    public final String entryRuleQualifiedNameWithWildCard() throws RecognitionException {
        String current = null;

        AntlrDatatypeRuleToken iv_ruleQualifiedNameWithWildCard = null;


        try {
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:368:2: (iv_ruleQualifiedNameWithWildCard= ruleQualifiedNameWithWildCard EOF )
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:369:2: iv_ruleQualifiedNameWithWildCard= ruleQualifiedNameWithWildCard EOF
            {
             newCompositeNode(grammarAccess.getQualifiedNameWithWildCardRule()); 
            pushFollow(FOLLOW_ruleQualifiedNameWithWildCard_in_entryRuleQualifiedNameWithWildCard772);
            iv_ruleQualifiedNameWithWildCard=ruleQualifiedNameWithWildCard();

            state._fsp--;

             current =iv_ruleQualifiedNameWithWildCard.getText(); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleQualifiedNameWithWildCard783); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleQualifiedNameWithWildCard"


    // $ANTLR start "ruleQualifiedNameWithWildCard"
    // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:376:1: ruleQualifiedNameWithWildCard returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_QualifiedName_0= ruleQualifiedName (kw= '.*' )? ) ;
    public final AntlrDatatypeRuleToken ruleQualifiedNameWithWildCard() throws RecognitionException {
        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();

        Token kw=null;
        AntlrDatatypeRuleToken this_QualifiedName_0 = null;


         enterRule(); 
            
        try {
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:379:28: ( (this_QualifiedName_0= ruleQualifiedName (kw= '.*' )? ) )
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:380:1: (this_QualifiedName_0= ruleQualifiedName (kw= '.*' )? )
            {
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:380:1: (this_QualifiedName_0= ruleQualifiedName (kw= '.*' )? )
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:381:5: this_QualifiedName_0= ruleQualifiedName (kw= '.*' )?
            {
             
                    newCompositeNode(grammarAccess.getQualifiedNameWithWildCardAccess().getQualifiedNameParserRuleCall_0()); 
                
            pushFollow(FOLLOW_ruleQualifiedName_in_ruleQualifiedNameWithWildCard830);
            this_QualifiedName_0=ruleQualifiedName();

            state._fsp--;


            		current.merge(this_QualifiedName_0);
                
             
                    afterParserOrEnumRuleCall();
                
            // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:391:1: (kw= '.*' )?
            int alt4=2;
            int LA4_0 = input.LA(1);

            if ( (LA4_0==19) ) {
                alt4=1;
            }
            switch (alt4) {
                case 1 :
                    // ../hu.bme.mit.androtext.androapp/src-gen/hu/bme/mit/androtext/androapp/parser/antlr/internal/InternalAndroAppDsl.g:392:2: kw= '.*'
                    {
                    kw=(Token)match(input,19,FOLLOW_19_in_ruleQualifiedNameWithWildCard849); 

                            current.merge(kw);
                            newLeafNode(kw, grammarAccess.getQualifiedNameWithWildCardAccess().getFullStopAsteriskKeyword_1()); 
                        

                    }
                    break;

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleQualifiedNameWithWildCard"

    // Delegated rules


 

    public static final BitSet FOLLOW_ruleAndroidApplication_in_entryRuleAndroidApplication75 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleAndroidApplication85 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleImport_in_ruleAndroidApplication131 = new BitSet(new long[]{0x0000000000020800L});
    public static final BitSet FOLLOW_11_in_ruleAndroidApplication144 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleAndroidApplication161 = new BitSet(new long[]{0x0000000000001000L});
    public static final BitSet FOLLOW_12_in_ruleAndroidApplication178 = new BitSet(new long[]{0x0000000000002000L});
    public static final BitSet FOLLOW_13_in_ruleAndroidApplication190 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_ruleQualifiedName_in_ruleAndroidApplication213 = new BitSet(new long[]{0x0000000000008000L});
    public static final BitSet FOLLOW_ruleActivity_in_ruleAndroidApplication234 = new BitSet(new long[]{0x000000000000C000L});
    public static final BitSet FOLLOW_ruleModelElement_in_ruleAndroidApplication255 = new BitSet(new long[]{0x000000000000C000L});
    public static final BitSet FOLLOW_14_in_ruleAndroidApplication268 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleModelElement_in_entryRuleModelElement304 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleModelElement314 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleActivity_in_ruleModelElement360 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleActivity_in_entryRuleActivity394 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleActivity404 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_15_in_ruleActivity441 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleActivity458 = new BitSet(new long[]{0x0000000000010000L});
    public static final BitSet FOLLOW_16_in_ruleActivity475 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_ruleQualifiedName_in_ruleActivity498 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleImport_in_entryRuleImport534 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleImport544 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_17_in_ruleImport581 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_ruleQualifiedNameWithWildCard_in_ruleImport602 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleQualifiedName_in_entryRuleQualifiedName639 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleQualifiedName650 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleQualifiedName690 = new BitSet(new long[]{0x0000000000040002L});
    public static final BitSet FOLLOW_18_in_ruleQualifiedName709 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleQualifiedName724 = new BitSet(new long[]{0x0000000000040002L});
    public static final BitSet FOLLOW_ruleQualifiedNameWithWildCard_in_entryRuleQualifiedNameWithWildCard772 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleQualifiedNameWithWildCard783 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleQualifiedName_in_ruleQualifiedNameWithWildCard830 = new BitSet(new long[]{0x0000000000080002L});
    public static final BitSet FOLLOW_19_in_ruleQualifiedNameWithWildCard849 = new BitSet(new long[]{0x0000000000000002L});

}